/**
 * 
 */
package com.scpii.universal.hibernate.dao;

import java.util.List;

import com.scpii.universal.dto.AppPageDto;
import com.scpii.universal.dto.PageTree;
import com.scpii.universal.hibernate.entity.AppPageTab;

/**
 * genericWeb
 * @author weny
 * 2012-7-6上午09:25:03
 */
public interface AppPageDao extends BaseDao<AppPageTab, Integer> {
	/**
	 * 根据ID获得直属下级页面
	 * @param id
	 * @param properties
	 * 			要查询的字段名
	 * @return
	 * @author liuhj
	 * 2012-7-14下午05:06:55
	 */
	public List<AppPageTab> getNextLevelChildren(Integer id, String[] properties);
	
	/**
	 * 查询应用的所有页面
	 * @param appId
	 * @param properties
	 * 			要查询的属性
	 * @return
	 * @author liuhj
	 * 2012-7-17下午08:16:27
	 */
	public List<AppPageTab> getAllPagesByAppId(int appId,String[] properties);
	
	/**
	 * 批量删除
	 * @param ids
	 * @author liuhj
	 * 2012-7-20上午11:36:09
	 */
	public void delete(String ids);
	
	/**
	 * 根据视图查询要跳转的页面信息
	 * @param viewId
	 * @param properties
	 * 			要查询的信息
	 * @return
	 * @author liuhj
	 * 2012-7-23下午09:58:34
	 */
	public List<AppPageTab> getPagesInfoByViewId(int viewId, String[] properties);
	
	/**
	 * 获取应用的所有导航对应的页面
	 * @param appId
	 * @return
	 * @author liuhj
	 * 2012-7-23下午10:26:20
	 */
	public List<AppPageDto> getPagesByNavigation(int appId);
	
	/**
	 * 更新页面信息
	 * @param page
	 * @author liuhj
	 * 2012-7-31上午11:09:41
	 */
	public void updatePage(AppPageTab page);
	
	/**
	 * 获取页面信息
	 * @param pageId
	 * @param properties
	 * @return
	 * @author liuhj
	 * 2012-7-31下午12:05:23
	 */
	public AppPageTab getPageInfoById(int pageId, String[] properties);
	
	/**
	 * 获取指定页面的所有子页面
	 * @param pageId
	 * @return
	 * @author liuhj
	 * 2012-8-9上午10:46:08
	 */
	public List<PageTree> getPageTreeByPageId(int pageId);
}
